#ifndef EMPLOYEE_H
#define EMPLOYEE_H

#include <string>
#include <iostream>

class Employee {
    static int sn;  // 编号
public:
    // 默认构造函数
    Employee() { msyn = sn++; }
    // 接受一个 string 的构造函数
    Employee(const std::string &s) { name = s; msyn = sn++; }
    // 拷贝构造函数
    Employee(Employee &rhs) { name = rhs.name; msyn = sn++; }
    // 拷贝赋值构造函数
    Employee& operator =(const Employee &rhs) { name = rhs.name; return *this; }
    const std::string &get_name() { return name; }
    int get_msyn() { return msyn; }
private:
    std::string name;   // 姓名
    int msyn;   // 证号
};

int Employee::sn = 0;

void f_employee(Employee &e)
{
    std::cout << e.get_name() << " : " << e.get_msyn() << std::endl;
}

#endif // EMPLOYEE_H
